package com.ruoyi.system.service.estate.emergency;

import java.util.List;
import java.util.Map;
import com.ruoyi.system.domain.estate.emergency.EmergencySuppliesStock;
import com.ruoyi.system.domain.estate.emergency.EmergencySuppliesRecord;

/**
 * 应急物资库存Service接口
 */
public interface IEmergencySuppliesStockService {
    /**
     * 查询应急物资库存列表
     * 
     * @param emergencySuppliesStock 应急物资库存信息
     * @return 应急物资库存集合
     */
    public List<EmergencySuppliesStock> selectEmergencySuppliesStockList(EmergencySuppliesStock emergencySuppliesStock);

    /**
     * 查询应急物资库存详细信息
     * 
     * @param stockId 应急物资库存ID
     * @return 应急物资库存信息
     */
    public EmergencySuppliesStock selectEmergencySuppliesStockById(Long stockId);

    /**
     * 新增应急物资库存
     * 
     * @param emergencySuppliesStock 应急物资库存信息
     * @return 结果
     */
    public int insertEmergencySuppliesStock(EmergencySuppliesStock emergencySuppliesStock);

    /**
     * 修改应急物资库存
     * 
     * @param emergencySuppliesStock 应急物资库存信息
     * @return 结果
     */
    public int updateEmergencySuppliesStock(EmergencySuppliesStock emergencySuppliesStock);

    /**
     * 批量删除应急物资库存
     * 
     * @param stockIds 需要删除的应急物资库存ID
     * @return 结果
     */
    public int deleteEmergencySuppliesStockByIds(Long[] stockIds);

    /**
     * 删除应急物资库存信息
     * 
     * @param stockId 应急物资库存ID
     * @return 结果
     */
    public int deleteEmergencySuppliesStockById(Long stockId);
    
    /**
     * 物资入库
     * 
     * @param stock 应急物资库存信息
     * @return 结果
     */
    public int stockIn(EmergencySuppliesStock stock);
    
    /**
     * 物资出库
     * 
     * @param stock 应急物资库存信息
     * @return 结果
     */
    public int stockOut(EmergencySuppliesStock stock);
    
    /**
     * 获取即将过期的物资
     * 
     * @return 即将过期物资列表
     */
    public List<EmergencySuppliesStock> selectExpiringSupplies();
    
    /**
     * 获取物资库存分布情况
     * 
     * @return 分布情况
     */
    public List<Map<String, Object>> selectStockDistribution();
}